// pages/register/register.js
const APP = getApp()
var util = require('../../utils/util')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    showStep: false,
    current: 2,
    type: 1, //1  家属   2 律师
    postobj: {
      phone: '', //手机
      password: '', //密码
      code: '', //验证码
      key: '', //验证码返回值值

      userName: '',
      card: '', //证件号码
      number: '', //律师执业证

      backImage: '', //身份证背面图片
      frontImage: '', //身份证前面图片
      lawyerImage: '' //律师证
    },

    api: util.config().api + '/mobileUser/common/upload/',
    fileListfrontImage: [],
    fileListbackImage: [],
    fileListlawyerImage: [],
    iconGetcode: '获取验证码',
    disabled: false
  },
  //预约会见
  toAppoi() {
    this.setData({
      showStep: true,
    })
    wx.reLaunch({
      url: '/pages/appointment/appointment',
    })
  },
  // 去返回首页
  toLoginIndexReLaunch() {
    this.setData({
      showStep: true,
    })
    APP.toLoginIndexReLaunch()
  },
  //倒计时结束
  finished() {
    this.setData({
      disabled: false
    })
  },
  //点击获取验证码
  iconGetcode() {
    this.setData({
      disabled: true
    })
    const countDown = this.selectComponent('.control-count-down');
    countDown.start();
  },
  //清空  输入框
  clearValue(e) {
    var value = e.target.dataset.value
    if (value == 'userName') {
      this.setData({
        'postobj.userName': ''
      })
    } else if (value == 'card') {
      this.setData({
        'postobj.card': ''
      })
    } else if (value == 'number') {
      this.setData({
        'postobj.number': ''
      })
    } else if (value == 'phone') {
      this.setData({
        'postobj.phone': ''
      })
    } else if (value == 'password') {
      this.setData({
        'postobj.password': ''
      })
    } else if (value == 'code') {
      this.setData({
        'postobj.code': ''
      })
    }
  },
  //点击获取验证码
  iconGetcode() {

    if (!!!this.data.postobj.phone) {
      wx.showToast({
        title: '手机号不能为空！',
        image: '../../assets/error.png',
      })
    } else if (this.data.postobj.phone.length != 11) {
      wx.showToast({
        title: '手机号格式不正确！',
        image: '../../assets/error.png',
      })
    } else {
      // 验证码  1 注册   2 验证码登录  3密码找回
      var postObj = {
        url: '/mobileUser/sendCode',
        method: 'post',
        data: {
          phone: this.data.postobj.phone,
          type: '1'
        }
      }
      APP.request.loginRequest(postObj).then(res => {
        if (res.data.code === 200) {
          this.setData({
            disabled: true,
            'postobj.key': res.data.data
          })
          const countDown = this.selectComponent('.control-count-down');
          countDown.start();
          // console.log(res)
        }
      })
    }

  },
  //监听值变化
  onChange(e) {
    var formName = e.target.dataset.formname
    var name = `postobj.${formName}`;
    this.setData({
      [name]: e.detail
    })
    console.log(this.data.postobj.userName)
  },

  // 点击身份类型
  clickType(e) {
    var type = e.target.dataset.type
    // console.log(type);
    this.setData({
      type: type
    })
  },

  // 点击下一步
  next() {
    var addCurrent = this.data.current
    var reg = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/;
    if (addCurrent == 0) {
      //注册的下一步
      if (!!!this.data.postobj.phone) {
        wx.showToast({
          title: '手机号不能为空！',
          image: '../../assets/error.png',
        })
      } else if (this.data.postobj.phone.length != 11) {
        wx.showToast({
          title: '手机号格式不正确！',
          image: '../../assets/error.png',
        })
      } else if (!!!this.data.postobj.password) {
        wx.showToast({
          title: '密码不能为空！',
          image: '../../assets/error.png',
        })
      } else if (!!!this.data.postobj.code) {
        wx.showToast({
          title: '验证码不能为空！',
          image: '../../assets/error.png',
        })
      } else {
        let obj = {
          phone: this.data.postobj.phone,
          key: this.data.postobj.key,
          code: this.data.postobj.code
        }
        var postObj = {
          url: '/mobileUser/check',
          method: 'post',
          data: obj
        }
        APP.request.loginRequest(postObj).then(res => {
          console.log(res);

          if (res.data.code === 200) {
            addCurrent = this.data.current + 1;
            var current = addCurrent > 2 ? 2 : addCurrent;
            this.setData({
              'current': current
            })
          } else {
            // wx.showToast({
            //   title: '手机号验证码不正确！',
            //   image: '../../assets/error.png',
            // })
            // this.setData({
            //   'postobj.key': '',
            //   'postobj.code': ''
            // })
            // this.finished()
          }
        }).catch(err => {
          console.log(err);
          this.setData({
            // 'postobj.key': '',
            'postobj.code': ''
          })
          // this.finished()
        })







      }
    } else if (addCurrent == 1) {
      //实名认证的下一步
      if (!!!this.data.postobj.userName) {
        wx.showToast({
          title: '姓名不能为空！',
          image: '../../assets/error.png',
        })
      } else if (!!!this.data.postobj.card) {
        wx.showToast({
          title: '不能为空！',
          image: '../../assets/error.png',
        })
      } else if (!(this.data.postobj.card.match(reg))) {
        wx.showToast({
          title: '格式不正确！',
          image: '../../assets/error.png',
        })
      } else if (!!!this.data.postobj.number && this.data.type == 2) {
        wx.showToast({
          title: '律师执业证！',
          image: '../../assets/error.png',
        })
      } else if (!this.data.postobj.frontImage) {
        wx.showToast({
          title: '身份证正面！',
          image: '../../assets/error.png',
        })
      } else if (!this.data.postobj.backImage) {
        wx.showToast({
          title: '身份证背面！',
          image: '../../assets/error.png',
        })
      } else if (!this.data.postobj.lawyerImage && this.data.type == 2) {
        wx.showToast({
          title: '律师证图片！',
          image: '../../assets/error.png',
        })
      } else {
        var obj = this.data.postobj
        obj.type = this.data.type
        //请求接口   请求成功后才能下一步
        var postObj = {
          url: '/mobileUser/register',
          method: 'post',
          data: {
            ...obj,
            sysInterviewer: obj
          }
        }
        console.log(postObj);

        APP.request.loginRequest(postObj).then(res => {
          if (res.data.code === 200) {
            wx.setStorageSync('jy-token', res.data.data)
            addCurrent = this.data.current + 1;
            var current = addCurrent > 2 ? 2 : addCurrent;
            this.setData({
              'current': current
            })
          }
        })

      }
    } else {
      addCurrent = this.data.current + 1;
      var current = addCurrent > 2 ? 2 : addCurrent;
      this.setData({
        'current': current
      })
    }

  },




  // 删除 身份证 前面
  deleteReadfrontImage() {
    this.setData({
      fileListfrontImage: [],
      'postobj.frontImage': ''
    })
  },
  // 删除 身份证 背面
  deleteReadbackImage() {
    this.setData({
      fileListbackImage: [],
      'postobj.backImage': ''
    })
  },
  // 删除 律师证
  deleteReadlawyerImage() {
    this.setData({
      fileListlawyerImage: [],
      'postobj.lawyerImage': ''
    })
  },
  // 上传前校验
  beforeRead(event) {
    const {
      file,
      callback
    } = event.detail;
    callback(file.type === 'image');
  },
  // 上传后校验    身份证 前面
  afterReadfrontImage(event) {
    let that = this
    const {
      file
    } = event.detail;
    console.log(file);

    wx.uploadFile({
      url: that.data.api, // 仅为示例，非真实的接口地址
      filePath: file.path,
      name: 'file',
      formData: {
        user: 'test'
      },
      success(res) {
        // 上传完成需要更新 fileList
        var data = JSON.parse(res.data)
        console.log('图片上传服务器返回值', data)
        var fileList = []
        fileList.push(data)
        that.setData({
          fileListfrontImage: fileList,
          'postobj.frontImage': data.fileName
        });





      },
    });

    // 当设置 mutiple 为 true 时, file 为数组格式，否则为对象格式
    // wx.uploadFile({
    //   url: that.data.api,
    //   success(res) {
    //     const data = res
    //     console.log(res);

    //   }
    // })
  },
  // 上传后校验    身份证 背面
  afterReadbackImage(event) {
    let that = this
    const {
      file
    } = event.detail;
    console.log(file);

    wx.uploadFile({
      url: that.data.api, // 仅为示例，非真实的接口地址
      filePath: file.path,
      name: 'file',
      formData: {
        user: 'test'
      },
      success(res) {
        // 上传完成需要更新 fileList
        var data = JSON.parse(res.data)
        console.log('图片上传服务器返回值', data)
        var fileList = []
        fileList.push(data)
        that.setData({
          fileListbackImage: fileList,
          'postobj.backImage': data.fileName
        });
      },
    });
  },
  // 上传后校验    律师证
  afterReadlawyerImage(event) {
    let that = this
    const {
      file
    } = event.detail;
    console.log(file);

    wx.uploadFile({
      url: that.data.api, // 仅为示例，非真实的接口地址
      filePath: file.path,
      name: 'file',
      formData: {
        user: 'test'
      },
      success(res) {
        // 上传完成需要更新 fileList
        var data = JSON.parse(res.data)
        console.log('图片上传服务器返回值', data)
        var fileList = []
        fileList.push(data)
        that.setData({
          fileListlawyerImage: fileList,
          'postobj.lawyerImage': data.fileName
        });
      },
    });
  },



  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})